de.cebis.moccabox.application.impl.hibernate
Class TaskContext

java.lang.Object
  extended by de.cebis.moccabox.application.impl.hibernate.TaskContext
All Implemented Interfaces:
ITaskContext

public class TaskContext
extends java.lang.Object
implements ITaskContext

Die Klasse beschreibt den Kontext, in dem ein Vorgang (IBusinessTask) ausgeführt wird. Der Kontext ist dabei ein Container für Vorgänge, die innerhalb derselben semantischen Einheit durchgeführt werden können. Für einen IBusinessTask 'Kunden anlegen' kann bspw. der TaskContext 'Kundenverwaltung' und in der Instanz 'Kundenverwaltung Müller GmbH' sein. Er entspricht damit dem betrieblichen Objekt auf Ebene des Interaktionsschemas. Der Vorgang 'Kunden anlegen' kann aber auch innerhalb weiterer Kontexte wie 'Auftragsverwaltung' aufgerufen werden. Es ist damit nicht nur wichtig, welcher Vorgang ausgeführt wird, sondern auch in welchem Kontext. Die Wiederverwendung der Vorgangsobjekte wird dadurch erhöht, weil sie abhängig davon, in welchem Kontext sie verwendet werden, auf eine unterschiedliche Basis von Attributen zurückgreifen können.

Zu den Aufgaben der Laufzeitumgebung TaskContext gehören die Kapselung und Überwachung von Zustand, Transaktionsschutz, Integritäts-Monitoring etc. Zudem muss er Verwalten, dass alle eingehenden Requests auch bearbeitet und in der richtigen Reihenfolge durchlaufen werden. Alle Vorgänge, die innerhalb desselben Kontextes durchgeführt werden, haben Zugriff auf den Speicher des Kontextes, so dass sie auf diesselben Instanzen eines gemeinsam benötigten Aufgabenobjektes zugreifen können.

Parametrisiert wird der TaskContext durch ein entsprechendes BusinessTaskContextBean, das alle notwendigen Informationen und Meta-Informationen über den Kontext enthält.

Author:
weichelt - 20.04.2005
See Also:
ITaskContextManager, TaskContextManager, BusinessTaskContextBean

Field Summary
static java.lang.String ATTRIBUTE_PERSPECTIVE
          Definiert das Attribut der Perspektive, welches die verschiedenen Sichten auf den Kontext ermöglicht.
static java.lang.String STANDARD_CONTEXT
          Definiert das Feld für den Standard Kontext, der verwendet wird, sofern kein speziell instantiierter Kontext für die Durchführung eines Vorgangs spezifiziert wurde.
 
Fields inherited from interface de.cebis.moccabox.application.context.ITaskContext
ATTRIBUTE_CONTEXT
 
Constructor Summary
TaskContext(ITaskContextManager manager)
          Konstruktor zum Anlegen eines neuen TaskContext
 
Method Summary
 void addMessage(Message m)
          Hinzufügen einer Meldung.
 void addMessages(Message[] ms)
          Hinzufügen von Meldungen.
 void addTaskRequest(ITaskRequest tRequest)
          Hinzufügen eines ITaskRequest, der innerhalb dieses Kontextes ausgeführt werden soll.
 void clearMessages()
          Zurücksetzen aller Meldungen.
 void executeRequest()
          Ausführen des aktuellen Request.
 ITaskRequest getActiveTaskRequest()
          Zurückliefern des aktuellen ITaskRequest.
 AttributeStore getAttributeStore()
          Zurückliefern der Attribute des Kontextes.
 BusinessTaskContextBean getBusinessTaskContextBean()
          Zurückgeben des Objektes, das den ITaskContext parametrisiert.
 java.lang.String getCurrentPerspective()
          Zurückliefern des Namens der gegenwärtig eingenommenen Perspektive auf den TaskContext.
 IBusinessTaskResult getCurrentTaskResult()
          Zurückliefern des Ergebnisses der Durchführung des aktuellen VO (IBusinessTask).
 java.lang.String getInstanceName()
          Zurückliefern des Namens des instantiierten TaskContext-Objekts.
 Message[] getMessages()
          Zurückliefern aller Meldungen, die bei der Durchführung von Vorgängen innerhalb des ITaskContext aufgetreten sind.
 MetaSystem getMetaSystem()
          Zurückliefern des IntegrityMonitor, der für die Einhaltung der semantischen Integrität bei der Persistierung von Konzepten nach der Durchführung von Vorgängen zuständig ist.
 java.lang.String getName()
          Zurückgeben des Namens des Kontextes.
 IRepository getRepository()
          Zurückgeben des IRepository, das die Informationen über die Anwendung und die Vorgangsobjekte enthält.
 org.hibernate.SessionFactory getSessionFactory()
          Zurückliefern der Transaktionsschnittstelle der Datenbasis.
 ITaskContextManager getTaskContextManager()
          Zurückliefern des ITaskContextManager, der für die Verwaltung und die Parametrisierung des ITaskContext zuständig ist.
protected  IBusinessTask retrieveBusinessTask(java.lang.String command)
           
 void setAttributeStore(AttributeStore attributeStore)
          Setzen der Attribute, die den internen Speicher des TaskContext befüllen.
 void setBusinessTaskContextBean(StandardBusinessTaskContextBean bean)
          Setzen der Parametrisierung des TaskContext.
 void setCurrentPerspective(java.lang.String currentPerspective)
          Setzen des Namens der aktuell eingenommenen Perspektive.
 void setInstanceName(java.lang.String name)
          Setzen des Namens des instantiierten TaskContext-Objekts.
 void setName(java.lang.String name)
          Setzen des Namens des Kontextes.
 void setSessionFactory(org.hibernate.SessionFactory sessionFactory)
          Setzen der Transaktionsschnittstelle der Datenbasis.
 void setTaskContextManager(ITaskContextManager contextManager)
          Setzen des ITaskContextManager, der für die Koordination des ITaskContext zuständig ist, in dem die IBusinessTask- Objekte ausgeführt werden.
protected  void validateTaskResult(IBusinessTaskResult result)
          Validieren des Ergebnisses einer Vorgangsdurchführung.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

STANDARD_CONTEXT

public static final java.lang.String STANDARD_CONTEXT
Definiert das Feld für den Standard Kontext, der verwendet wird, sofern kein speziell instantiierter Kontext für die Durchführung eines Vorgangs spezifiziert wurde.

See Also:
Constant Field Values

ATTRIBUTE_PERSPECTIVE

public static final java.lang.String ATTRIBUTE_PERSPECTIVE
Definiert das Attribut der Perspektive, welches die verschiedenen Sichten auf den Kontext ermöglicht. Auf die Kundenverwaltung kann man bspw. aus der Perspektive 'Kunde Stammdaten', 'Abteilungen', 'Aufträge' etc. sehen.

See Also:
Constant Field Values
Constructor Detail

TaskContext

public TaskContext(ITaskContextManager manager)
Konstruktor zum Anlegen eines neuen TaskContext

Parameters:
manager - Der ITaskContextManager, der für die Verwaltung des TaskContext zuständig ist.
Method Detail

getActiveTaskRequest

public ITaskRequest getActiveTaskRequest()
Description copied from interface: ITaskContext
Zurückliefern des aktuellen ITaskRequest. Es handelt sich dabei um den Request, der im abzuarbeitenden Stack an oberster Stelle steht. Erst, wenn dieser Request abgearbeitet ist, wird der nächste Request bearbeitet.

Specified by:
getActiveTaskRequest in interface ITaskContext
Returns:
Der aktive ITaskRequest, der innerhalb des Kontextes aktuell zu bearbeiten ist.

addTaskRequest

public void addTaskRequest(ITaskRequest tRequest)
Description copied from interface: ITaskContext
Hinzufügen eines ITaskRequest, der innerhalb dieses Kontextes ausgeführt werden soll. Es werden stets alle anstehenden Requests, die auf dem Stack liegen ausgeführt.

Specified by:
addTaskRequest in interface ITaskContext
Parameters:
tRequest - Request, der im Rahmen der Durchführung des Kontextes abgearbeitet werden soll.

executeRequest

public void executeRequest()
                    throws BusinessTaskPerformanceException

Ausführen des aktuellen Request. Es wird entschieden, ob das dem Request zu Grunde liegende Kommando die Instantiierung eines neuen Request erforderlich macht oder ob das aktuelle VO für die weitere Durchführung des Request zuständig ist.

Ein TaskContext hat einen internen Speicher, in den das ausführende Vorgangsobjekt (IBusinessTask) geladen wird. Zur Durchführung wird es vom TaskContext beauftragt. Ist der Speicher des Kontextes leer, so wird zur Ausführung des Request der IBusinessTask neu aus dem zu Grunde liegenden Repository instantiiert. Wird die Durchführung des VO aufgrund einer Rückfrage an den Anwender oder Warten auf Nutzereingabe unterbrochen und nach erfolgtem Feedback des Anwenders wieder aufgenommen, so greift der TaskContext auf das bereits instantiierte VO zu. Dadurch bleibt der interne Speicher, also das Aufgabenobjekt entsprechend erhalten. Ist ein anderer als der aktuelle IBusinessTask für die Durchführung des auszuführenden Request zuständig, so wird dieses aus dem IRepository neu instantiiert und der ersetzt den aktuellen IBusinessTask.

Specified by:
executeRequest in interface ITaskContext
Throws:
BusinessTaskPerformanceException - Ausnahme beim Ausführen des aktuellen Request.

validateTaskResult

protected void validateTaskResult(IBusinessTaskResult result)
                           throws BusinessTaskPerformanceException
Validieren des Ergebnisses einer Vorgangsdurchführung. Ist kein gültiger Zustand nach Durchführung erreicht, so wird eine Exception geworfen.

Parameters:
result - Das zu validierende Ergebnis der Durchführung eines Vorgangs.
Throws:
BusinessTaskPerformanceException - Das Ergebnis repräsentiert einen ungültigen Zustand.

retrieveBusinessTask

protected IBusinessTask retrieveBusinessTask(java.lang.String command)
                                      throws BusinessTaskPerformanceException
Throws:
BusinessTaskPerformanceException

getName

public java.lang.String getName()
Description copied from interface: ITaskContext
Zurückgeben des Namens des Kontextes. Es handelt sich dabei lediglich um den Typnamen des Kontextes (z.B. 'Auftragsverwaltung').

Specified by:
getName in interface ITaskContext
Returns:
Der Name des Kontextes.

setName

public void setName(java.lang.String name)
Description copied from interface: ITaskContext
Setzen des Namens des Kontextes.

Specified by:
setName in interface ITaskContext
Parameters:
name - Der Name des Kontextes.

getInstanceName

public java.lang.String getInstanceName()
Zurückliefern des Namens des instantiierten TaskContext-Objekts. So heißt bspw. eine Instanz des Kontextes 'Kundenverwaltung' - 'Müller GmbH'.

Returns:
Name der Instanz dieses TaskContext.

setInstanceName

public void setInstanceName(java.lang.String name)
Setzen des Namens des instantiierten TaskContext-Objekts.

Parameters:
name - Name der Instanz dieses TaskContext.

getCurrentPerspective

public java.lang.String getCurrentPerspective()
Zurückliefern des Namens der gegenwärtig eingenommenen Perspektive auf den TaskContext. Der Name muss in der Liste der möglichen Perspektiven, die auf den Kontext eingenommen werden können, vorhanden sein. Bei der Auslieferung des IO wird die aktuelle Perspektive als geöffnete Registerkarte interpretiert.

Returns:
Name der aktuellen Perspektive.

setCurrentPerspective

public void setCurrentPerspective(java.lang.String currentPerspective)
Setzen des Namens der aktuell eingenommenen Perspektive.

Parameters:
currentPerspective - Aktuell geöffnete Perspektive.

addMessage

public void addMessage(Message m)
Description copied from interface: ITaskContext
Hinzufügen einer Meldung.

Specified by:
addMessage in interface ITaskContext
Parameters:
m - Hinzuzufügende Meldung.

addMessages

public void addMessages(Message[] ms)
Description copied from interface: ITaskContext
Hinzufügen von Meldungen.

Specified by:
addMessages in interface ITaskContext
Parameters:
ms - Hinzuzufügenden Meldungen.

getMessages

public Message[] getMessages()
Description copied from interface: ITaskContext
Zurückliefern aller Meldungen, die bei der Durchführung von Vorgängen innerhalb des ITaskContext aufgetreten sind.

Specified by:
getMessages in interface ITaskContext
Returns:
Vorliegende Meldungen. Liegen keine Meldungen vor, wird ein leerer Array zurückgeliefert.

clearMessages

public void clearMessages()
Description copied from interface: ITaskContext
Zurücksetzen aller Meldungen.

Specified by:
clearMessages in interface ITaskContext

getMetaSystem

public MetaSystem getMetaSystem()
Zurückliefern des IntegrityMonitor, der für die Einhaltung der semantischen Integrität bei der Persistierung von Konzepten nach der Durchführung von Vorgängen zuständig ist. Der IntegrityMonitor ist die Schnittstelle zur Datenbasis des Anwendungssystems.

Returns:
Die Persistenzschnittstelle der Anwendung.

getSessionFactory

public org.hibernate.SessionFactory getSessionFactory()
Zurückliefern der Transaktionsschnittstelle der Datenbasis.

Returns:
Die Transaktionsschnittstelle.

getTaskContextManager

public ITaskContextManager getTaskContextManager()
Description copied from interface: ITaskContext
Zurückliefern des ITaskContextManager, der für die Verwaltung und die Parametrisierung des ITaskContext zuständig ist.

Specified by:
getTaskContextManager in interface ITaskContext
Returns:
Verwaltender ITaskContextManager.

setTaskContextManager

public void setTaskContextManager(ITaskContextManager contextManager)
Setzen des ITaskContextManager, der für die Koordination des ITaskContext zuständig ist, in dem die IBusinessTask- Objekte ausgeführt werden.

Parameters:
contextManager - Verwaltungskomponente zur Koordination des ITaskContext.

getAttributeStore

public AttributeStore getAttributeStore()
Description copied from interface: ITaskContext
Zurückliefern der Attribute des Kontextes.

Specified by:
getAttributeStore in interface ITaskContext
Returns:
Der Teil des internen Speichers des ITaskContext, auf den andere Objekte Zugriff haben. Vor allem die auszuführenden IBusinessTask-Objekte haben als einen gemeinsam nutzbaren Speicher Zugriff auf diesen AttributeStore.

setAttributeStore

public void setAttributeStore(AttributeStore attributeStore)
Setzen der Attribute, die den internen Speicher des TaskContext befüllen.

Parameters:
attributeStore - Container der Attribute, die den internen Speicher des TaskContext umfassen.

setSessionFactory

public void setSessionFactory(org.hibernate.SessionFactory sessionFactory)
Setzen der Transaktionsschnittstelle der Datenbasis.

Parameters:
sessionFactory - Die Transaktionsschnittstelle.

getCurrentTaskResult

public IBusinessTaskResult getCurrentTaskResult()
Description copied from interface: ITaskContext
Zurückliefern des Ergebnisses der Durchführung des aktuellen VO (IBusinessTask). Nach der Durchführung eines Vorgangs im TaskContext kann über diese Methode auf das Ergebnis der Durchführung (Nachereignis) zugegriffen werden.

Specified by:
getCurrentTaskResult in interface ITaskContext
Returns:
Das Ergebnis der Vorgangsdurchführung.

getRepository

public IRepository getRepository()
Description copied from interface: ITaskContext
Zurückgeben des IRepository, das die Informationen über die Anwendung und die Vorgangsobjekte enthält.

Specified by:
getRepository in interface ITaskContext
Returns:
Repository der Metadaten über die Anwendung.

getBusinessTaskContextBean

public BusinessTaskContextBean getBusinessTaskContextBean()
Description copied from interface: ITaskContext
Zurückgeben des Objektes, das den ITaskContext parametrisiert. Es wird beim Einlesen des Repository in dieses geschrieben und beim Instantiieren des ITaskContext diesem übergeben.

Specified by:
getBusinessTaskContextBean in interface ITaskContext
Returns:
Daten und Informationen über den ITaskContext.

setBusinessTaskContextBean

public void setBusinessTaskContextBean(StandardBusinessTaskContextBean bean)

Setzen der Parametrisierung des TaskContext. Das StandardBusinessContextBean enthält alle notwendigen Informationen zur Instantiierung des TaskContext. Es wird in der Regel durch die moccapart_x.xml spezifiziert.

Parameters:
bean -